[アップデート] AWS Elemental MediaStoreでオブジェクト削除のライフサイクルポリシーが設定できるようになりました!
はじめに
清水です。AWS Media Servicesの細かなアップデートを追っていくコーナーです。本エントリで紹介するのはこちら、AWS Elemental MediaStoreでオブジェクトを削除するライフサイクルポリシーが設定できるようになりました。(2018/12/12にアップデートされた内容となります。)
- AWS Elemental MediaStore Now Supports Delete Lifecycle Policies
- AWS Elemental MediaStore が削除ライフサイクルポリシーをサポート
- AWS Developer Forums: AWS Elemental MediaStore Now Supports Delete Lifecycle Policies
メディア向けに最適化されたストレージサービスであり、Amazon S3よりも整合性の強いストレージでもあるAWS Elemental MediaStore、ライブ配信時のマニフェストファイル、セグメントファイルのストレージとして使用することが多いかと思います。ライブ配信終了後、ついつい使用したファイル(MediaStoreではオブジェクト)をそのままにしてしまったり、またマネージメントコンソールからファイル(オブジェクト)を削除するのにひと手間かかるのでそのまま放置してしまう…、なんてことはなかったでしょうか。(私はあります…) 今回のアップデートにより、AWS Elemental MediaStoreのコンテナ/フォルダごとにライフサイクルポリシーが設定できるようになり、指定した保存期間に達すると自動でファイル(オブジェクト)が削除されるようにうなりました。これで削除する手間も省け、またストレージコストの節約にもなりますね!
AWS Elemental MediaStoreにオブジェクト削除のライフサイクルポリシーを設定してみた
では実際にドキュメントを確認しながら、MediaStoreにライフサイクルポリシーを設定してみます。設定方法について、ドキュメントを確認する限り現在のところマネージメントコンソールからは行えず、AWS CLIで操作する必要があるようです。
確認に使用したAWS CLIは以下の環境となります。
$ aws --version aws-cli/1.16.81 Python/3.6.5 Darwin/17.7.0 botocore/1.12.71
コンテナへのライフサイクルポリシーの設定
ライフサイクルポリシーを定義するファイルの準備
まずはライフサイクルポリシーをファイルにより定義します。ドキュメントを参考に記載しましょう。
今回はコンテナ全体を対象とし、作成から14日を経過したオブジェクトを削除するルールとしました。
$ cat MediaStoreLifeCyclePolicy.json { "rules": [ { "definition": { "path": [ { "prefix": "" } ], "days_since_create": [ {"numeric": [">" , 14]} ] }, "action": "EXPIRE" } ] }
AWS CLIでコンテナにライフサイクルポリシーを設定
では実際にMediaStoreのコンテナにライフサイクルポリシーを設定します。AWS CLIのput-lifecycle-policy
コマンドを使用します。
$ aws mediastore put-lifecycle-policy \ --container-name TokyoContainer \ --lifecycle-policy file://MediaStoreLifeCyclePolicy.json
設定したライフサイクルポリシーの確認
設定後、コマンドの返り値などはありません。きちんと設定できたか確認してみましょう。AWC CLIのget-lifecycle-policy
コマンドを使用します。
$ aws mediastore get-lifecycle-policy --container-name TokyoContainer { "LifecyclePolicy": "{ \n \"rules\": [\n {\n \"definition\": {\n \"path\": [ { \"prefix\": \"\" } ],\n \"days_since_create\": [\n {\"numeric\": [\">\" , 14]}\n ]\n },\n \"action\": \"EXPIRE\"\n }\n ]\n}\n\n" }
設定したライフサイクルポリシーの削除
ライフサイクルポリシーの削除についても確認してみます。AWS CLIのdelete-lifecycle-policy
コマンドを使用します。
$ aws mediastore delete-lifecycle-policy --container-name TokyoContainer
削除コマンドについても返り値がありませんので、実行後にget-lifecycle-policy
コマンドで状態を確認します。
$ aws mediastore get-lifecycle-policy --container-name TokyoContainer An error occurred (PolicyNotFoundException) when calling the GetLifecyclePolicy operation: No policy found.
ライフサイクルポリシーが削除されていますね!
まとめ
AWS Elemental MediaStoreの新機能、オブジェクト削除のライフサイクルポリシー設定について実際に設定しながら確認してみました。AWC CLIからの設定になりますが、Amazon S3のライフサイクルポリシーと同様の操作感で設定ができた印象です。また今回は試していませんが、コンテナ内のフォルダごと別々に保存期間の設定も可能です。AWS Elemental MediaStoreのライフサイクルポリシーを上手に活用して、きちんとオブジェクトを管理していきましょう。引き続きAWS MediaStoreをはじめとしたAWS Media Servicesの機能アップデートに注目していきたいと思います!